package com.quectel.core.module.propertybill.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author zhangheng
 * @email nolan.zhang@quectel.com
 * @date 2023/03/31 16:28
 */
@Data
@TableName("property_bill")
public class PropertyBillEntity {

    /**
     * id
     */
    @TableId
    private Long id;

    /**
     * 租户id
     */
    private Long tenantId;

    /**
     * 小区id
     */
    private Long villageId;

    /**
     * 楼栋Id
     */
    private Long buildingId;

    /**
     * 楼层Id
     */
    private Long floorId;

    /**
     * 房间id
     */
    private Long roomId;

    /**
     * 支付人id
     */
    private Long householdId;

    /**
     * 收费标准id
     */
    private Long chargeableListId;

    /**
     * 1按月2按季度3半年4按年
     */
    private Byte periodType;

    /**
     * 账单所在年
     */
    private Integer year;

    /**
     * 对于月取值范围1-12 季度取值范围1-4 对于半年取值范围1-2 年存入1
     */
    private Integer periodValue;

    /**
     * 周期名称 2023第一季度xxx账单
     */
    private String periodName;

    /**
     * 通用支付订单Id
     */
    private Long orderId;

    /**
     * 物业账单编号支付成功产生
     */
    private String orderNo;

    /**
     * 应缴总额
     */
    private BigDecimal totalAmount;

    /**
     * 项目总金额
     */
    private BigDecimal itemAmount;

    /**
     * 优惠总金额
     */
    private BigDecimal discountAmount;

    /**
     * 滞纳金
     */
    private BigDecimal overdueAmount;

    /**
     * 实缴金额
     */
    private BigDecimal payAmount;


    /**
     * 开票状态0未提交开票 1申请开票,开票中2已开票3已红冲4已关闭
     */
    private Byte invoiceStatus;

    /**
     * 最后一次创建订单时间
     */
    private Date latestCreateOrderTime;


    /**
     * 支付状态1未支付2已支付3已退款
     */
    private Byte payStatus;


    /**
     * 支付时间
     */
    private Date payTime;

    /**
     * 赠品领取状态 1已领取 0未领取
     */
    private Byte giftFlag;

    /**
     * 赠品数量
     */
    private Integer giftNum;

    /**
     * 逾期缴费时间
     */
    private Date overdueDate;

    /**
     * 逾期天数
     */
    private Long overdueDays;

    /**
     * 账单开始时间
     */
    private Date startDate;

    /**
     * 账单结束时间
     */
    private Date endDate;

    /**
     * 账单创建时间
     */
    private Date createTime;

    /**
     * 账单更新时间
     */
    private Date updateTime;


}
